MAX = 10**5 + 10
f = [0] * MAX
prime = []
# 预先处理出质数数组
for i in range(2, MAX):
    if f[i] == 0:
        prime.append(i)
        # 标记 i 是质数
        for j in range(i * i, MAX, i):
            f[j] = 1

n = int(input())
a = [0] + list(map(int, input().split()))
# 前缀和，从下标 1 开始
pre = [0] * (n + 1)
for i in range(1, n + 1):
    pre[i] = pre[i - 1] + a[i]

ans = float('-inf')
for x in prime:  # 枚举子数组长度，窗口长度（质数）
    if x <= n:
        # 左区间
        for l in range(1, n - x + 2):  # 移动固定长度为 x 的窗口
            # 右区间  由 x=r-l+1 得来
            r = l + x - 1
            ans = max(ans, pre[r] - pre[l - 1])  # 前缀和从 1 开始
print(ans)